#ifndef _OBJECT_MANAGER_H_
#define _OBJECT_MANAGER_H_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "..\Parser\MapList.h"
#include "..\Figure\Figure.h"
#include "..\Enum\ObjectType.h"
#include "..\Enum\ObjectTypeUtils.h"
#include "..\Container\FigureContainer.h"
#include "..\Factory\FigureFactory.h"
#include "..\Factory\TextureFactory.h"
#include "..\Container\TextureContainer.h"
#include "..\Logger\Logger.h"
#include "..\Manager\DefaultParameterManager.h"
#include <list>

class ObjectManager{
	
	public:

		static ObjectManager* getInstance();

		void generateElements(std::list<MapList*>&);

		virtual ~ObjectManager();

		static void destroy();

	private:

		void generateAllTextures(std::list<MapList*>&);

		void generateAllFigures(std::list<MapList*>&);

		ObjectManager();
		
		static ObjectManager* instance;

};

#endif

